package leetcode;

/**
 * @program: datastructureandalogorithm
 * @description:
 * @author: hmx
 * @create: 2022-01-20 19:30
 **/
public class Leetcode2029 {

    public boolean stoneGameIX(int[] stones) {
        int[] cnts = new int[3];
        //统计除以3余数分别为0,1,2的元素个数
        for (int i : stones) {
            cnts[i % 3]++;
        }

        //两种情况,余数为0的元素个数为偶数时,只有余数为1和2的元素个数都至少有一个Alice获胜,否则Bob获胜
        //为奇数时,只有余数为1和2的元素个数相差大于2,才能抵消掉换手的操作,Alice获胜
        return cnts[0] % 2 == 0 ? (cnts[1] != 0 && cnts[2] != 0) : !(Math.abs(cnts[1] - cnts[2]) <= 2);
    }

}
